package com.shenma2009.vo;

import com.shenma2009.annotations.KeyNameInfo;
import com.shenma2009.config.Config;
import com.shenma2009.utils.DateUtils;
import lombok.Data;

import java.util.HashMap;
import java.util.Map;

/**
 * @author 军哥
 * @version 1.0
 * @description: VehicleDataVo
 * @date 2023/5/27 10:12
 */
@Data
public class VehicleDataVo {
    /**
     * VIN
     */
    private String vin;
    /**
     * 行驶路线
     */
    private String drivingRoute;

    /**
     * 经度
     */
    private String longitude;

    /**
     * 维度
     */
    private String latitude;

    /**
     * 速度
     */
    private String speed;

    /**
     * 里程
     */
    @KeyNameInfo(key = "里程" , unit = "KM")
    private String mileage;

    /**
     * 总电压
     */
    @KeyNameInfo(key = "总电压" , unit = "V")
    private String voltage;

    /**
     * 总电流
     */
    @KeyNameInfo(key = "总电流" , unit = "A")
    private String current;

    /**
     * 绝缘电阻
     */
    @KeyNameInfo(key = "绝缘电阻" , unit = "Ω")
    private String resistance;

    /**
     * 档位
     */
    @KeyNameInfo(key = "档位" , unit = "")
    private String gear;

    /**
     * 加速踏板行程值
     */
    @KeyNameInfo(key = "加速踏板行程值" , unit = "")
    private String accelerationPedal;

    /**
     * 制动踏板行程值
     */
    @KeyNameInfo(key = "制动踏板行程值" , unit = "")
    private String brakePedal;

    /**
     * 燃料消耗率
     */
    @KeyNameInfo(key = "燃料消耗率" , unit = "L/百公里")
    private String fuelConsumptionRate;

    /**
     * 电机控制器温度
     */
    @KeyNameInfo(key = "电机控制器温度" , unit = "")
    private String motorControllerTemperature;

    /**
     * 电机转速
     */
    @KeyNameInfo(key = "电机转速" , unit = "")
    private String motorSpeed;

    /**
     * 电机转矩
     */
    @KeyNameInfo(key = "电机转矩" , unit = "")
    private String motorTorque;

    /**
     * 电机温度
     */
    @KeyNameInfo(key = "电机温度" , unit = "")
    private String motorTemperature;

    /**
     * 电机电压
     */
    @KeyNameInfo(key = "电机电压" , unit = "")
    private String motorVoltage;

    /**
     * 电机电流
     */
    @KeyNameInfo(key = "电机电流" , unit = "")
    private String motorCurrent;

    /**
     * 动力电池剩余电量SOC
     */
    @KeyNameInfo(key = "电池剩余电量" , unit = "")
    private String remainingBattery;

    /**
     * 当前状态允许的最大反馈功率
     */
    @KeyNameInfo(key = "最大反馈功率" , unit = "")
    private String maximumFeedbackPower;

    /**
     * 当前状态允许最大放电功率
     */
    @KeyNameInfo(key = "最大放电功率" , unit = "")
    private String maximumDischargePower;

    /**
     * BMS自检计数器
     */
    @KeyNameInfo(key = "BMS自检计数器" , unit = "")
    private String selfCheckCounter;

    /**
     * 动力电池充放电电流
     */
    @KeyNameInfo(key = "充放电电流" , unit = "")
    private String totalBatteryCurrent;

    /**
     * 动力电池负载端总电压V3
     */
    @KeyNameInfo(key = "电池负载端总电压" , unit = "")
    private String totalBatteryVoltage;

    /**
     * 单次最大电压
     */
    @KeyNameInfo(key = "单次最大电压" , unit = "")
    private String singleBatteryMaxVoltage;

    /**
     * 单体电池最低电压
     */
    @KeyNameInfo(key = "单体电池最低电压" , unit = "")
    private String singleBatteryMinVoltage;

    /**
     * 单体电池最高温度
     */
    @KeyNameInfo(key = "单体电池最高温度" , unit = "")
    private String singleBatteryMaxTemperature;

    /**
     * 单体电池最低温度
     */
    @KeyNameInfo(key = "单体电池最低温度" , unit = "")
    private String singleBatteryMinTemperature;

    /**
     * 动力电池可用容量
     */
    @KeyNameInfo(key = "动力电池可用容量" , unit = "%")
    private String availableBatteryCapacity;

    /**
     * 车辆状态
     */
    private int vehicleStatus;

    /**
     * 充电状态
     */
    private int chargingStatus;

    /**
     * 运行状态
     */
    private int operatingStatus;

    /**
     * SOC
     */
    private int socStatus;

    /**
     * 可充电储能装置工作状态
     */
    private int chargingEnergyStorageStatus;

    /**
     * 驱动电机状态
     */
    private int driveMotorStatus;

    /**
     * 定位是否有效
     */
    private int positionStatus;

    /**
     * EAS(汽车防盗系统)状态
     */
    private int easStatus;

    /**
     * PTC(电动加热器)状态
     */
    private int ptcStatus;

    /**
     * EPS(电动助力系统)状态
     */
    private int epsStatus;

    /**
     * ABS(防抱死)状态
     */
    private int absStatus;

    /**
     * MCU(电机/逆变器)状态
     */
    private int mcuStatus;

    /**
     * 动力电池加热状态
     */
    private int heatingStatus;

    /**
     * 动力电池当前状态
     */
    private int batteryStatus;

    /**
     * 动力电池保温状态
     */
    private int batteryInsulationStatus;

    /**
     * DCDC(电力交换系统)状态
     */
    private int dcdcStatus;

    /**
     * CHG(充电机)状态
     */
    private int chgStatus;

    /**
     * 车辆状态 报文
     */
    private String vehicleStatusMsg;
    /**
     * 智能硬件 报文
     */
    private String smartHardwareMsg;
    /**
     * 电池报文
     */
    private String batteryMsg;
}
